hvmloader: don't use AML operations on 64-bit fields
authorJan Beulich <jbeulich@suse.com>
Wed, 28 May 2014 08:57:18 +0000 (10:57 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 28 May 2014 08:57:18 +0000 (10:57 +0200)
commit7f8d8abcf6dfb85fae591a547b24f9b27d92272c
tree37ae2784e7164c0f46dfa18f4a980559cf2c59e6
parent054b6dfb61eab00d86ddd5d0ac508f5302da0d52
hvmloader: don't use AML operations on 64-bit fields

WinXP and Win2K3, while having no problem with the QWordMemory resource
(there was another one there before), don't like operations on 64-bit
fields. Split the fields d0688669 ("hvmloader: also cover PCI MMIO
ranges above 4G with UC MTRR ranges") added to 32-bit ones, handling
carry over explicitly.

Sadly the constructs needed to create the sub-fields - nominally

    CreateDWordField(PRT0, \_SB.PCI0._CRS._Y02._MIN, MINL)
    CreateDWordField(PRT0, Add(\_SB.PCI0._CRS._Y02._MIN, 4), MINH)

- can't be used: The former gets warned upon by newer iasl, i.e. would
need to be replaced by the latter just with the addend changed to 0,
and the latter doesn't translate properly with recent iasl). Hence,
short of having an ASL/iasl expert at hand, we need to work around the
shortcomings of various iasl versions. See the code comment.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/firmware/hvmloader/acpi/dsdt.asl